Cloud Resource Manager
組織リソースの作成と管理  |  Resource Manager のドキュメント  |  Google Cloud
エンタープライズ企業のベスト プラクティス  |  ドキュメント  |  Google Cloud
アカウントと組織の計画に関するベスト プラクティス  |  Cloud アーキテクチャ センター  |  Google Cloud
階層評価について  |  Resource Manager のドキュメント  |  Google Cloud
組織ポリシー
組織ポリシー サービスの概要  |  Resource Manager のドキュメント  |  Google Cloud
組織のポリシーの制約  |  Resource Manager のドキュメント  |  Google Cloud
Cloud Function の世代の制約とかもあるんだ
PubSub メッセージのリージョン制約
階層評価について  |  Resource Manager のドキュメント  |  Google Cloud
図がよい
フォルダで継承していく
継承を拒否できる
フォルダで追加や削除(拒否)もできる
既に違反しているところにポリシーを適用しても止まらない、結果を見て対処する
ドメインの制約とかも、既に許可済みのものは即座にとまることはない、IAM に追加するのを制約する
Professional Cloud Security Engineer 完全攻略ガイド2022
典型的なユースケース
code: quote
SA のキーを払い出せないようにしたい
➜ iam.disableServiceAccountKeyCreation
Type:Bool
デフォルト SA の自動的な権限割当を無効化したい
➜ iam.automaticIamGrantsForDefaultServiceAccounts
Type:Bool
VPC Peering のピア関係を許可された VPC のみに制限したい
➜ constraints/compute.restrictVpcPeering
Type:List
共有 VPC のサブネット払い出しを許可された プロジェクト のみに制限したい
➜ constraints/compute.restrictSharedVpcSubnetworks
Type:List
リソース ロケーションを許可されたロケーションのみに制限したい
➜ constraints/gcp.resourceLocations
Type:List
ドメイン別の ID の制限  |  Resource Manager のドキュメント  |  Google Cloud
サービス アカウントの使用の制限  |  Resource Manager のドキュメント  |  Google Cloud
リソース ロケーションの制限  |  Resource Manager のドキュメント  |  Google Cloud
constraints/trustedImageProjects
allowedValue & deniedValue にプロジェクトのリストを与える
組織IDを確認する
$ gcloud organizations list
アクセス可能なフォルダ一覧を得る
$ gcloud resource-manager folders list --organization=ID
ただし、組織のトップディレクトリにアクセスできなければ意外と方法がない?
階層内のすべてのリソースの一覧表示  |  Resource Manager のドキュメント  |  Google Cloud
俺は listable でないので困る
$ gcloud projects list --format=json
でプロジェクトと親フォルダ一覧出して
$ gcloud resource-manager folders describe FOLDER_ID
で辿っていってツリーを作ることはできそう
単にアクセス可能なフォルダ一覧を作るだけなら検索 API でできる
Method: folders.search  |  Resource Manager  |  Google Cloud
$ curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" -H 'Content-Type: application/json' 'https://cloudresourcemanager.googleapis.com/v2/folders:search?query='
query に parent=organization/ID とか入れれば組織直下のものは取れる
組織 > 見えないフォルダ > フォルダ という構造の時は出てこない
#GoogleCloud